Three-dimensional (3D) graphics systems may realistically display moving images using a 3D accelerator. Using 3D graphic technology, a 3D object may be represented using three coordinates—height, width, and length—which are used to display the 3D object on a two-dimensional monitor. The 3D accelerator may used to rapidly perform 3D graphic processing through a hardware-implemented graphic arithmetic unit.
Conventional graphics systems may include a graphical processing unit (GPU) inside a 3D accelerator. The GPU may enable a user to create new operations that may be desired in addition to providing standard built-in functionality. These new operations may provide improved video quality. Moreover, system performance may be improved by using multiple GPUs in a parallel processing configuration.
FIG. 1 illustrates a conventional graphics system 100, which includes a GPU 110, system memory 120, peripheral device 130, system bus 140, host 150, frame buffer 160, display control unit 170, and display device 180 that are configured as shown. The GPU 110 performs commands requested by the host 150 and/or peripheral device 130 using a 3D graphic processing program and/or 3D graphic models/data stored in the system memory 120. Graphics data that are translated by the GPU 110 are stored in the frame buffer 150 and are displayed through the display control unit 170 on the display device 180.
FIG. 2 is a block diagram that illustrates the GPU 110 of FIG. 1 in more detail. The GPU 110 includes an instruction memory 210, an instruction fetch unit 220, an instruction decoder 230, an operand fetcher 240, an execution unit 250, a write back unit 260, and a register file 270 that are configured as shown. The instruction fetch unit 220 includes a program counter 221 and an instruction register 223. Instructions are stored in the instruction memory 210 based on host 150 requests. An instruction may consist of a plurality of fields, such as an OPCODE, which specifies the type of instruction and the structure of the data on which the instruction operates, and parameters for instruction operation, such as a source address of an operand and/or a destination address of an operation result.
The instruction fetch unit 220 includes a program counter 221 that outputs a row address RADD that is used to access an address of an instruction in the instruction memory 210. The instruction memory 210 outputs an instruction responsive to the row address RADD and a read enable signal RE generated by the instruction fetch unit 220. The instruction is loaded into the instruction register 223.
The instruction decoder 230 decodes the OPCODE of the instruction stored in the instruction register 223 to determine the instruction type. The operand fetcher 240 fetches any operand associated with the instruction based on an operand address contained in the instruction. The execution unit 250 executes the instruction based on the type determined from the OPCODE and the fetched operand if applicable. The write back unit 260 stores the result of executing the instruction in the register file 270 at a destination address specified in the instruction.
An instruction may include a variety of fields depending on the instruction type and/or the number of operands needed. In complicated programs that are often used in 3D graphics processing, instructions may vary widely in the number of fields associated therewith. As a result, successive instructions may differ widely in the number of fields used in executing the instructions. The instruction memory 210 and instruction register 223 are typically designed based on the size of the instruction that has the largest number of fields associated therewith. The number of instruction fields fetched when fetching an instruction from the instruction memory 210 may be based on the instruction with the most instruction fields associated therewith. This may result in unnecessary power consumption due to switching of memory management circuits to fetch unused instruction fields when fetching an instruction that uses fewer than the greatest number of instruction fields.